'use strict';
const dayjs = require("dayjs");
module.exports = app => {
    const { STRING, INTEGER, DATE } = app.Sequelize;
    const DeviceData = app.model.define(
        'deviceData',
        {
            id: {type: INTEGER, primaryKey: true, autoIncrement: true},
            device_id: INTEGER(11),
            member_id: INTEGER(11),
            // 氢气浓度
            hydrogen_concentration: STRING(255),
            // 温度
            temperature: STRING(255),
            // 湿度
            humidity: STRING(255),
            // 生态液
            ecological_liquid: STRING(255),
            // 运行状态
            run_status: INTEGER(11),
            // 清洗状态
            clean_status: INTEGER(11),
            // 氢气
            hydrogen: STRING(255),
            // 硫化氢
            hydrogen_sulfide: STRING(255),
            // 甲酸醇
            methanol: STRING(255),
            // 甲流二醇
            ethylene_glycol: STRING(255),
            // 乙胺
            ethylamine: STRING(255),
            // 吲哚
            indole: STRING(255),
            // 格式化时间
            publish_time: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('publish_time')).format('YYYY-MM-DD HH:mm:ss');
                },
            },
            updated_time: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('updated_time')).format('YYYY-MM-DD HH:mm:ss');
                },
            },
            create_time: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('create_time')).format('YYYY-MM-DD HH:mm:ss');
                },
            }
        },
        {
            tableName: 'device_data',
            timestamps: true, // 启用时间戳(createdAt, updatedAt)
            updatedAt: 'updated_time', // 不想要 updatedAt
            createdAt: 'create_time', // 想要  createdAt 但是希望名称叫做 created_at
        }
    );
    // 关联
    DeviceData.associate = function() {
        app.model.DeviceData.belongsTo(app.model.Device, { foreignKey: 'device_id', targetKey: 'id' });
        app.model.DeviceData.belongsTo(app.model.Member, { foreignKey: 'member_id', targetKey: 'id' });
    }
    return DeviceData
};

/**
 * id: {type: INTEGER, primaryKey: true, autoIncrement: true},
 *             device_id: INTEGER(11),
 *             member_id: INTEGER(11),
 *             // 氢气浓度
 *             hydrogen_concentration: STRING(255),
 *             // 温度
 *             temperature: STRING(255),
 *             // 湿度
 *             humidity: STRING(255),
 *             // 生态液
 *             ecological_liquid: STRING(255),
 *             // 运行状态
 *             run_status: INTEGER(11),
 *             // 清洗状态
 *             clean_status: INTEGER(11),
 *             // 氢气
 *             hydrogen: STRING(255),
 *             // 硫化氢
 *             hydrogen_sulfide: STRING(255),
 *             // 甲酸醇
 *             methanol: STRING(255),
 *             // 甲流二醇
 *             ethylene_glycol: STRING(255),
 *             // 乙胺
 *             ethylamine: STRING(255),
 *             // 吲哚
 *             indole: STRING(255),
 *             // 格式化时间
 *             publish_time: {
 *                 type: DATE,
 *                 get() {
 *                     return dayjs(this.getDataValue('publish_time')).format('YYYY-MM-DD HH:mm:ss');
 *                 },
 *             },
 *             updated_time: {
 *                 type: DATE,
 *                 get() {
 *                     return dayjs(this.getDataValue('updated_time')).format('YYYY-MM-DD HH:mm:ss');
 *                 },
 *             },
 *             create_time: {
 *                 type: DATE,
 *                 get() {
 *                     return dayjs(this.getDataValue('create_time')).format('YYYY-MM-DD HH:mm:ss');
 *                 },
 *             }
 *             基于上述字段生成mysql初始化表的sql语句 并添加注释
 */
// CREATE TABLE `device_data` (
//     `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
//     `device_id` int(11) DEFAULT NULL COMMENT '设备id',
//     `member_id` int(11) DEFAULT NULL COMMENT '用户id',
//     `hydrogen_concentration` varchar(255) DEFAULT NULL COMMENT '氢气浓度',
//     `temperature` varchar(255) DEFAULT NULL COMMENT '温度',
//     `humidity` varchar(255) DEFAULT NULL COMMENT '湿度',
//     `ecological_liquid` varchar(255) DEFAULT NULL COMMENT '生态液',
//     `run_status` int(11) DEFAULT NULL COMMENT '运行状态',
//     `clean_status` int(11) DEFAULT NULL COMMENT '清洗状态',
//     `hydrogen` varchar(255) DEFAULT NULL COMMENT '氢气',
//     `hydrogen_sulfide` varchar(255) DEFAULT NULL COMMENT '硫化氢',
//     `methanol` varchar(255) DEFAULT NULL COMMENT '甲酸醇',
//     `ethylene_glycol` varchar(255) DEFAULT NULL COMMENT '甲流二醇',
//     `ethylamine` varchar(255) DEFAULT NULL COMMENT '乙胺',
//     `indole` varchar(255) DEFAULT NULL COMMENT '吲哚',
//     `publish_time` datetime DEFAULT NULL COMMENT '格式化时间',
//     `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
//     `create_time` datetime DEFAULT NULL COMMENT '创建时间',
//     PRIMARY KEY (`id`)
//   ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='设备数据表';
